package com.bhkj.pdjhforotherapp.common.simpledisk;

import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
import java.io.StringWriter;
import java.nio.charset.Charset;

/**
 * Created by all-cui on 2017/11/1.
 */

@SuppressWarnings("WeakerAccess")
public class Util {
    static final Charset US_ASCII = Charset.forName("US-ASCII");
    static final Charset UTF_8 = Charset.forName("UTF-8");

    private Util()
    {
    }

    static String readFully(Reader reader) throws IOException
    {
        try
        {
            StringWriter writer = new StringWriter();
            char[] buffer = new char[1024];
            int count;
            while ((count = reader.read(buffer)) != -1)
            {
                writer.write(buffer, 0, count);
            }
            return writer.toString();
        } finally
        {
            reader.close();
        }
    }

    /**
     * Deletes the contents of {@code dir}. Throws an IOException if any file
     * could not be deleted, or if {@code dir} is not a readable directory.
     */
    static void deleteContents(File dir) throws IOException
    {
        File[] files = dir.listFiles();
        if (files == null)
        {
            throw new IOException("not a readable directory: " + dir);
        }
        for (File file : files)
        {
            if (file.isDirectory())
            {
                deleteContents(file);
            }
            if (!file.delete())
            {
                throw new IOException("failed to delete file: " + file);
            }
        }
    }

    static void closeQuietly(/*Auto*/Closeable closeable)
    {
        if (closeable != null)
        {
            try
            {
                closeable.close();
            } catch (RuntimeException rethrown)
            {
                throw rethrown;
            } catch (Exception ignored)
            {
            }
        }
    }

}
